<html>

<head>
<link rel="stylesheet" type="text/css" href="../../doc.css" />
<style type="text/css">
.auto-style1 {
	border-style: solid;
	border-width: 1px;
}
</style>
</head>

<body>
<h1>Linker</h1>
<p><strong>Purpose:</strong> A class to link multiple object files into a single 
load file.</p>
<hr>
<p><strong>Procedure Name:</strong> Linker<br><strong>Description:</strong> Constructor to initialize data 
collections<br><strong>Specification reference codes:</strong><br><strong>Calling Sequence</strong><br><strong>Input 
Parameters: </strong><br>	<strong>Output Parameters:</strong><br><br><strong>Error Conditions Tested:</strong> <br><strong>Error 
Messages Generated:</strong><br><strong>Original Author:</strong> Kyle Salberg<br><strong>Procedure Creation Date:</strong> 
5/21/2011<br><strong>Modification Log:</strong><br>
<table class="auto-style1" style="width: 100%">
	<tr>
		<td style="width: 74px"><strong>Who</strong></td>
		<td style="width: 99px"><strong>When</strong></td>
		<td style="width: 300px"><strong>Why</strong></td>
	</tr>
	<tr>
		<td style="width: 74px; height: 23px;">Kyle</td>
		<td style="width: 99px; height: 23px;">5/21/2011</td>
		<td style="width: 300px; height: 23px;">Created</td>
	</tr>
	<tr>
		<td style="width: 74px">Kyle</td>
		<td style="width: 99px">5/22/2011</td>
		<td style="width: 300px">Included global LC</td>
	</tr>
	
	<tr>
		<td style="width: 74px">&nbsp;</td>
		<td style="width: 99px">&nbsp;</td>
		<td style="width: 300px">&nbsp;</td>
	</tr>
</table>
<br><strong>Coding Standards Met:</strong> Signed-Kyle<br><strong>Testing Standards Met:</strong> Signed-Aditya<br></p>
<hr>
<p><strong>Procedure Name:</strong> AddInput<br><strong>Description:</strong> Reads in and parses a single object 
file<br><strong>Specification reference codes:</strong><br><strong>Calling Sequence</strong> - Called by 
LinkerMain<br>	<strong>Input Parameters:</strong> String 
file - the file name to be read<br>	<strong>Output Parameters:</strong> <br><br><strong>Error Conditions 
Tested:</strong><br><strong>Error Messages Generated:</strong><br><strong>Original Author:</strong> Kyle Salberg<br><strong>Procedure Creation Date:</strong> 
5/22/2011<br><strong>Modification Log:</strong><br>
<table class="auto-style1" style="width: 100%">
	<tr>
		<td style="width: 74px"><strong>Who</strong></td>
		<td style="width: 99px"><strong>When</strong></td>
		<td style="width: 300px">W<strong>hy</strong></td>
	</tr>
	<tr>
		<td style="width: 74px">Kyle</td>
		<td style="width: 99px">5/22/2011</td>
		<td style="width: 300px">Created</td>
	</tr>
	<tr>
		<td style="width: 74px">&nbsp;</td>
		<td style="width: 99px">&nbsp;</td>
		<td style="width: 300px">&nbsp;</td>
	</tr>
</table>
<br><strong>Coding Standards Met:</strong> Signed-Kyle<br><strong>Testing Standards Met:</strong> Signed-Aditya<br></p>
<hr>
<p><strong>Procedure Name:</strong> ParseLine<br><strong>Description:</strong> Parses a single line of an object 
file, and updates the records and symbol table as necessary<br><strong>Specification reference codes:</strong><br><strong>Calling Sequence</strong> 
- Called by AddInput<br>	
<strong>Input Parameters:</strong> String line - the object file line to be parsed<br>		<strong>Output Parameters:</strong> <br>
<strong>Error Conditions Tested:</strong> Checks for duplicate labels<br><strong>Error Messages Generated:</strong> 
InvalidDuplicateLabel<br><strong>Original Author:</strong> Kyle<br><strong>Procedure Creation Date:</strong> 
5/22/2011<br><strong>Modification Log:</strong><br>
<table class="auto-style1" style="width: 100%">
	<tr>
		<td style="width: 74px"><strong>Who</strong></td>
		<td style="width: 99px"><strong>When</strong></td>
		<td style="width: 300px">W<strong>hy</strong></td>
	</tr>
	<tr>
		<td style="width: 74px">Kyle</td>
		<td style="width: 99px">5/22/2011</td>
		<td style="width: 300px">Created</td>
	</tr>
	<tr>
		<td style="width: 74px">Aditya</td>
		<td style="width: 99px">5/22/2011</td>
		<td style="width: 300px">Updated to include error checking</td>
	</tr>
</table>
<br><br><strong>Coding Standards Met:</strong> Signed-Kyle<br><strong>Testing Standards Met:</strong> Signed-Aditya<br></p>
<hr>
<p><strong>Procedure Name:</strong> ComputeOutput<br><strong>Description:</strong> Creates and computes the 
entries for the output load file<br><strong>Specification reference codes:</strong> LM1, LM3<br><strong>Calling Sequence</strong> 
- Called by LinkerMain<br>	
<strong>Input Parameters:</strong> <br><strong>Output Parameters:</strong><br><br><strong>Error Conditions Tested:</strong> none<br><strong>Error 
Messages Generated: </strong>none<br>
<strong>Original Author:</strong> Kyle<br><strong>Procedure Creation Date:</strong> 5/22/2011<br><strong>Modification Log:</strong><table class="auto-style1" style="width: 100%">
	<tr>
		<td style="width: 74px"><strong>Who</strong></td>
		<td style="width: 99px"><strong>When</strong></td>
		<td style="width: 300px">W<strong>hy</strong></td>
	</tr>
	<tr>
		<td style="width: 74px">Kyle</td>
		<td style="width: 99px">5/22/2011</td>
		<td style="width: 300px">Created</td>
	</tr>
	<tr>
		<td style="width: 74px">&nbsp;</td>
		<td style="width: 99px">&nbsp;</td>
		<td style="width: 300px">&nbsp;</td>
	</tr>
</table>
<br><br><strong>Coding Standards Met:</strong> Signed-Kyle<br><strong>Testing Standards Met:</strong> Signed-Aditya<br></p>
<hr>
<p><strong>Procedure Name:</strong> ComputeRecord<br><strong>Description:</strong> Computes and adds a single text 
record to the output load file<br><strong>Specification reference codes:</strong> LM2<br><strong>Calling Sequence</strong> 
- Called by ComputeObject<br>	<strong>Input Parameters:</strong> ObjectFileRecord record<br>	<strong>Output Parameters:</strong> 
none<br><br><strong>Error Conditions Tested:</strong> 
none<br><strong>Error Messages Generated:</strong> none<br><strong>Original Author:</strong> Kyle Salberg<br><strong>Procedure Creation Date:</strong> 
5/22/2011<br><strong>Modification Log:</strong><br>
<table class="auto-style1" style="width: 100%">
	<tr>
		<td style="width: 74px"><strong>Who</strong></td>
		<td style="width: 99px"><strong>When</strong></td>
		<td style="width: 300px">W<strong>hy</strong></td>
	</tr>
	<tr>
		<td style="width: 74px">Kyle</td>
		<td style="width: 99px">5/22/2011</td>
		<td style="width: 300px">Created</td>
	</tr>
	<tr>
		<td style="width: 74px">&nbsp;</td>
		<td style="width: 99px">&nbsp;</td>
		<td style="width: 300px">&nbsp;</td>
	</tr>
</table>
<br><br><strong>Coding Standards Met:</strong> Signed-Kyle<br><strong>Testing Standards Met:</strong> Signed-Aditya<br>
</p>
<hr>
<p><strong>Procedure Name:</strong> GetMRecords<br><strong>Description:</strong> Returns all modify records with 
the location of the given hex value<br><strong>Specification reference codes:</strong><br><strong>Calling Sequence</strong> 
- Called by ComputeRecord<br>	<strong>Input Parameters:</strong> 
String hex<br>	<strong>Output Parameters:</strong> returns List&lt;ObjectFileRecord&gt;<br><br><strong>Error 
Conditions Tested: </strong>none<br><strong>Error Messages Generated:</strong> none<br><strong>Original Author:</strong> 
Kyle<br><strong>Procedure Creation Date:</strong> 
5/22/2011<br><strong>Modification Log:</strong><table class="auto-style1" style="width: 100%">
	<tr>
		<td style="width: 74px"><strong>Who</strong></td>
		<td style="width: 99px"><strong>When</strong></td>
		<td style="width: 300px">W<strong>hy</strong></td>
	</tr>
	<tr>
		<td style="width: 74px">Kyle</td>
		<td style="width: 99px">5/22/2011</td>
		<td style="width: 300px">Created</td>
	</tr>
	<tr>
		<td style="width: 74px">&nbsp;</td>
		<td style="width: 99px">&nbsp;</td>
		<td style="width: 300px">&nbsp;</td>
	</tr>
</table>
<br><br><strong>Coding Standards Met:</strong> Signed-Kyle<br><strong>Testing Standards Met:</strong> Signed-Aditya<br>
</p>
<hr>
<p><strong>Procedure Name:</strong> EvaluateModifyRecord<br><strong>Description:</strong> Returns the offset given 
by the modify record based on newly calculated locations of the labels<br><strong>Specification reference codes:</strong><br><strong>Calling Sequence</strong> 
- Called by ComputeRecord<br>	<strong>Input Parameters:</strong> ObjectFileRecord record<br>	
<strong>Output Parameters:</strong> returns int<br><br><strong>Error 
Conditions Tested: </strong>none<br><strong>Error Messages Generated:</strong> none<br><strong>Original Author:</strong> 
Kyle<br><strong>Procedure Creation Date:</strong> 
5/22/2011<br><strong>Modification Log:</strong><table class="auto-style1" style="width: 100%">
	<tr>
		<td style="width: 74px"><strong>Who</strong></td>
		<td style="width: 99px"><strong>When</strong></td>
		<td style="width: 300px">W<strong>hy</strong></td>
	</tr>
	<tr>
		<td style="width: 74px">Kyle</td>
		<td style="width: 99px">5/22/2011</td>
		<td style="width: 300px">Created</td>
	</tr>
	<tr>
		<td style="width: 74px">&nbsp;</td>
		<td style="width: 99px">&nbsp;</td>
		<td style="width: 300px">&nbsp;</td>
	</tr>
</table>
<br><br><strong>Coding Standards Met:</strong> Signed-Kyle<br><strong>Testing Standards Met:</strong> Signed-Aditya</p>
<hr>
<p><strong>Procedure Name:</strong> PrintDump<br><strong>Description:</strong> Fills in a memory array and prints 
a dump of the memory of this output program<br><strong>Calling Sequence</strong> - Called by 
LinkerMain<br>	<strong>Input Parameters:</strong> <br>	<strong>Output Parameters:</strong> <br><br><strong>Error 
Conditions Tested: </strong>none<br><strong>Error Messages Generated:</strong> none<br><strong>Original Author:</strong> 
Kyle<br><strong>Procedure Creation Date:</strong> 
5/22/2011<br><strong>Modification Log:</strong><table class="auto-style1" style="width: 100%">
	<tr>
		<td style="width: 74px"><strong>Who</strong></td>
		<td style="width: 99px"><strong>When</strong></td>
		<td style="width: 300px">W<strong>hy</strong></td>
	</tr>
	<tr>
		<td style="width: 74px">Kyle</td>
		<td style="width: 99px">5/22/2011</td>
		<td style="width: 300px">Created</td>
	</tr>
	<tr>
		<td style="width: 74px">&nbsp;</td>
		<td style="width: 99px">&nbsp;</td>
		<td style="width: 300px">&nbsp;</td>
	</tr>
</table>
<br><br><strong>Coding Standards Met:</strong> Signed-Kyle<br><strong>Testing Standards Met:</strong> Signed-Aditya</p>
<hr>
<p><strong>Procedure Name:</strong> PrintSymbols<br><strong>Description:</strong> Prints the Linker Symbol table<br>
<strong>Calling Sequence</strong> - Called by LinkerMain<br>	<strong>Input Parameters:</strong> <br><strong>Output 
Parameters: </strong><br><br><strong>Error 
Conditions Tested: </strong>none<br><strong>Error Messages Generated:</strong> none<br><strong>Original Author:</strong> 
Kyle<br><strong>Procedure Creation Date:</strong> 
5/22/2011<br><strong>Modification Log:</strong><table class="auto-style1" style="width: 100%">
	<tr>
		<td style="width: 74px"><strong>Who</strong></td>
		<td style="width: 99px"><strong>When</strong></td>
		<td style="width: 300px">W<strong>hy</strong></td>
	</tr>
	<tr>
		<td style="width: 74px">Kyle</td>
		<td style="width: 99px">5/22/2011</td>
		<td style="width: 300px">Created</td>
	</tr>
	<tr>
		<td style="width: 74px">&nbsp;</td>
		<td style="width: 99px">&nbsp;</td>
		<td style="width: 300px">&nbsp;</td>
	</tr>
</table>
<br><br><strong>Coding Standards Met:</strong> Signed-Kyle<br><strong>Testing Standards Met:</strong> Signed-Aditya</p>
<hr>
<p><strong>Procedure Name:</strong> ValidateRecord<br><strong>Description:</strong> <br><strong>Calling Sequence</strong> - Called 
by ParseLine<br>	<strong>Input Parameters:</strong> <br>	<strong>Output Parameters:</strong> <br><br><strong>Error 
Conditions Tested: </strong>Checks format for H, L, T, M and E records<br><strong>Error Messages 
Generated: </strong>Invalid Program name, Invalid address, invalid length of program, 
invalid start address, invalid number of versions, invalid number of records, 
invalid number of linking records, invalid number of text records, invalid 
number of modification records, invalid entry name, invalid location of linking 
record, invalid instruction, invalid address status flag, invalid number of M 
adjustments, invalid location of modification record, invalid data word, invalid 
sign, invalid label name, invalid format for H, L, T, M and E records and 
invlaid record type.<br><strong>Original Author:</strong> 
Aditya<br><strong>Procedure Creation Date:</strong> 
5/22/2011<br><strong>Modification Log:</strong><table class="auto-style1" style="width: 100%">
	<tr>
		<td style="width: 74px"><strong>Who</strong></td>
		<td style="width: 99px"><strong>When</strong></td>
		<td style="width: 300px">W<strong>hy</strong></td>
	</tr>
	<tr>
		<td style="width: 74px">Aditya</td>
		<td style="width: 99px">5/22/2011</td>
		<td style="width: 300px">Created</td>
	</tr>
	<tr>
		<td style="width: 74px">Aditya</td>
		<td style="width: 99px">5/24/2011</td>
		<td style="width: 300px">Fixed error for checking + and - in modify 
		records</td>
	</tr>
	<tr>
		<td style="width: 74px">&nbsp;</td>
		<td style="width: 99px">&nbsp;</td>
		<td style="width: 300px">&nbsp;</td>
	</tr>
</table>
<br><br><strong>Coding Standards Met:</strong> Signed-Kyle<br><strong>Testing Standards Met:</strong> Signed-Aditya</p>
<hr>
</body>
</html>
